Prover: bug fix for the invalidity prover#3138
Conversation
* add missing invalidity circuits to PayloadCircuits * add a unit test to catch missing circuits
* fix(prover): remove global overwrite in FullZKEVMWithSuite causing nil panic during setup * test(prover): add test to ensure FullZKEVMWithSuite does not overwrite global state
linea-besu Changelog Preview (informational)[Unreleased] diff (commits touching
|
tx-exclusion-api Changelog Preview (informational)[Unreleased] diff (commits touching
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0b7b00f. Configure here.
| case circuits.ExecutionDummyCircuitID, circuits.DataAvailabilityDummyCircuitID, | ||
| circuits.InvalidityNonceBalanceDummyCircuitID, | ||
| circuits.InvalidityPrecompileLogsDummyCircuitID, | ||
| circuits.InvalidityFilteredAddressDummyCircuitID: |
There was a problem hiding this comment.
New dummy circuits unhandled in getDummyCircuitParams
High Severity
isPayloadDummyCircuit now returns true for the three new invalidity dummy circuits (InvalidityNonceBalanceDummyCircuitID, InvalidityPrecompileLogsDummyCircuitID, InvalidityFilteredAddressDummyCircuitID), but getDummyCircuitParams was not updated with matching cases for these circuits. When collectPayloadVerifyingKeys calls getDummyCircuitParams for any of these, it hits the default branch and returns an error, causing setup to fail.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 0b7b00f. Configure here.
prover Changelog Preview (informational)[Unreleased] diff (commits touching
|
postman Changelog Preview (informational)[Unreleased] diff (commits touching
|
Codecov Report✅ All modified and coverable lines are covered by tests. Please upload reports for the commit 065f56e to get more accurate results. Additional details and impacted files@@ Coverage Diff @@
## main #3138 +/- ##
=========================================
Coverage 77.25% 77.25%
Complexity 7006 7006
=========================================
Files 1118 1118
Lines 44394 44394
Branches 5343 5343
=========================================
Hits 34297 34297
Misses 8734 8734
Partials 1363 1363
*This pull request uses carry forward flags. Click here to find out more. 🚀 New features to boost your workflow:
|
coordinator Changelog Preview (informational)[Unreleased] diff (commits touching
|
…ss circuit (#3150) The limitless invalidity builder was not extracting verification key data from congWIOP.ExtraData, leaving CongloVK and VKMerkleRoot as zero-valued constants in the compiled constraint system. At prove time, the actual VK values from the conglomeration proof failed the assertIsEqual check against these zero constants. Extract VK octuplets from ExtraData (matching the execution limitless builder pattern) and pass vkMerkleRoot through from setup.
(cherry picked from commit 05a0dd7) Co-authored-by: Soleimani193 <azam.soleimanian@ens.fr>
|
@Soleimani193 What is the relation with your PR #3179 ? |


This PR implements issue(s) #
Checklist
PR.
Note
Medium Risk
Medium risk because it changes invalidity circuit constraints (bad-nonce condition) and expands aggregation payload VK handling, which can affect proof validity and VK digest compatibility across setups.
Overview
Fixes invalidity proving correctness by changing the BadNonce condition (native checks, circuit constraints, and witness sanity checks) to treat a nonce as valid when
tx.Nonce == account.Nonce(notaccount.Nonce+1), with updated test vectors.Adds a chainID/config sanity check to invalidity proving (including limitless) that panics on mismatched transaction chainID vs
[layer2].chain_id, and wires additional limitless invalidity setup inputs (VK merkle root + conglomeration VKs) into the limitless circuit builder.Updates setup/aggregation plumbing by extending
PayloadCircuitsto include invalidity circuits (IDs 0–13), recognizing invalidity dummy circuits, and adding a regression test to ensurePayloadCircuitsstays consistent withGlobalCircuitIDMapping; also tightens zkEVM construction to avoid overwriting memoized globals and adds a guard test.Reviewed by Cursor Bugbot for commit 678f17c. Bugbot is set up for automated code reviews on this repo. Configure here.